#ifndef MOCHA_DETAIL_PLUGIN_HPP_INCLUDED
#define MOCHA_DETAIL_PLUGIN_HPP_INCLUDED

/**
 * @file
 */

#include <string>
#include "mocha/plugin.h"

namespace mocha {
using ::mocha_plugin_char_t;
typedef mocha_plugin_char_t plugin_char_t;
/**
 *
 */
class plugin {
public:
	virtual ~plugin() {}
	virtual const plugin_char_t* type_name() const = 0;
};
inline std::string extract_plugin_type_name(const plugin* p) {
	return reinterpret_cast<const char*>(p->type_name()); // Currently, plugin_char_t is directly compatible with char.
}
}

#endif

